#include "SeeMenus.h"

void seeMainMenu() {
	cout << "\t\t== MAIN MENU ==\n" << endl;

	cout << "1) Login" << endl;
	cout << "2) Register" << endl << endl;

	cout << "3) Leave" << endl << endl;
}

void seeMenuLogin() {
	cout << "\t\t== LOGIN MENU ==\n" << endl;
	cout << "\t\t   Choose User  \n" << endl;

	cout << "1) Administrator" << endl;
	cout << "2) Client" << endl << endl;

	cout << "3) Return" << endl << endl;
}

void seeMenuEditClient() {
	cout << "\n\t\t== Edit Client Profile ==\n" << endl;

	cout << "1) View Profile" << endl;
	cout << "2) Edit address" << endl;
	cout << "3) Edit password" << endl;
	cout << "4) Edit phone number" << endl;
	cout << "5) Edit e-mail" << endl;
	cout << "6) Manage preferences" << endl << endl;

	cout << "7) Return" << endl << endl;
}

void seeMenu_EditClients() {
	cout << "\t\t== Edit Clients ==\n" << endl;
	cout << "1) List of all clients" << endl;
	cout << "2) Search clients" << endl << endl;

	cout << "3) Return" << endl << endl;
}

void seeMenuSearchItems() {
	cout << "\t\t   Search Items  \n" << endl;

	cout << "1) By ID" << endl;
	cout << "2) By Name" << endl;
	cout << "3) By Maintype" << endl;
	cout << "4) By Subtype" << endl;
	cout << "5) By Age" << endl;
	cout << "6) By Price" << endl << endl; //price range options: below given price, equal to given price, higher than given price

	cout << "7) Return" << endl << endl;
}

void seeMenu_EditItems() {
	cout << "\t\t== Edit Items ==\n" << endl;
	cout << "1) List of all items" << endl;
	cout << "2) Search items" << endl << endl;

	cout << "3) Return" << endl << endl;
}

void seeMenuSearchTrans() {
	cout << "\t\t   Search Transactions  \n" << endl;

	cout << "1) By Date" << endl;
	cout << "2) By Client" << endl;
	cout << "3) By Item(s)" << endl << endl;

	cout << "4) Return" << endl << endl;
}

void seeMenuEditItem_Options() {
	cout << "\t\t== Edit Item ==\n" << endl;

	cout << "1) View Item Details" << endl;
	cout << "2) Edit name" << endl;
	cout << "3) Edit maintype" << endl;
	cout << "4) Edit subtype" << endl;
	cout << "5) Edit age" << endl;
	cout << "6) Edit price" << endl << endl;

	cout << "7) Return" << endl << endl;
}

void seeMenuEditTrans_Options() {
	cout << "\t\t== Edit Transaction ==\n" << endl;
	//edit item, and close transaction

	cout << "1) View Transaction Details" << endl;
	cout << "2) Edit Item" << endl;
	cout << "3) Close/Open Transaction" << endl;

	cout << "4) Return" << endl << endl;
}

void seeMenuEditHistoricItems_Options() {
	cout << "\t\t== Edit Unavailable Item ==\n" << endl;
	//edit item, and close transaction

	cout << "1) View Item Details" << endl;
	cout << "2) Edit name" << endl;
	cout << "3) Edit maintype" << endl;
	cout << "4) Edit subtype" << endl;
	cout << "5) Edit age" << endl;
	cout << "6) Edit price" << endl << endl;

	cout << "7) Return" << endl << endl;
}

void seeMenuAdmin_HistoricItems(){
	cout << "\n\t\t== Historic of Items ==\n" << endl;

	cout << "1) List all Items" << endl;
	cout << "2) Add Item" << endl;
	cout << "3) Remove Item" << endl;
	cout << "4) Edit Item" << endl;

	cout << "5) Return" << endl << endl;
}

void seeMenu_Historic() {
	cout << "\n\t\t== Historic ==\n" << endl;

	cout << "1) List Historic of Auctions" << endl;
	cout << "2) List Historic of Transactions" << endl;
	cout << "3) List Historic of Items" << endl;
	cout << "4) List bought items" << endl;
	cout << "5) List sold items" << endl;
	cout << "6) List trade items" << endl << endl;

	cout << "7) Return" << endl << endl;
}

void seeMenuAdmin_Historic() {
	cout << "\n\t\t== Historic ==\n" << endl;

	cout << "1) List Historic of Auctions" << endl;
	cout << "2) List Historic of Transactions" << endl;
	cout << "3) Historic of Items" << endl;
	cout << "4) List bought items" << endl;
	cout << "5) List sold items" << endl;
	cout << "6) List trade items" << endl << endl;

	cout << "7) Return" << endl << endl;
}

void seeMenuClient() {
	cout << "\t\t== Client Menu ==\n" << endl;

	cout << "1) Manage Items" << endl;
	cout << "2) Rare Items" << endl;
	cout << "3) Manage Transactions" << endl;
	cout << "4) Manage Auctions" << endl; //auctions the client can participate in or is already participating in
	cout << "5) Manage Bids" << endl;
	cout << "6) Manage Catalogue" << endl;
	cout << "7) Profile" << endl;
	cout << "8) Historic" << endl;
	cout << "9) Delete Profile" << endl << endl;

	cout << "10) Log Out" << endl << endl;
}

void seeMenuClient_ManageItems() {
	cout << "\t\t== Client Menu ==\n" << endl;
	cout << "\t\t  Consult Items  \n" << endl;

	cout << "1) List Items" << endl; //list own items
	cout << "2) Increase owned items' quantity" << endl;
	cout << "3) Search Items" << endl;
	cout << "4) Edit Items" << endl << endl;

	cout << "5) Return" << endl << endl;
}

void seeMenuClient_ManageTransactions() {
	cout << "\t\t== Client Menu ==\n" << endl;
	cout << "\t\t  Manage Transactions \n" << endl;

	cout << "1) List Transactions" << endl;
	cout << "2) Buy/Trade" << endl;
	cout << "3) Search Transactions" << endl;
	cout << "4) Edit Transactions" << endl;
	cout << "5) Add Transactions" << endl;
	cout << "6) Delete Transactions" << endl << endl;
	/**
	 * list own transactions, and search for other transactions to get involved in, and add their own?
	 *
	 *
	 * client can only insert new items when making a new transaction (specifically trade or sell)
	 */
	cout << "7) Return" << endl << endl;
}

void seeMenuClient_SearchTransactions() {
	cout << "\t\t== Search Transactions ==\n" << endl;

	cout << "1) By Date" << endl;
	cout << "2) By Item(s)" << endl << endl;

	cout << "3) Return" << endl << endl;
}

void seeMenuClient_ManageAuctions() {
	cout << "\t\t== Client Menu ==\n" << endl;
	cout << "\t\t  Manage Auctions \n" << endl;

	cout << "1) List All Auctions" << endl;
	cout << "2) List Own Auctions" << endl; //auctions the client is a participant in
	cout << "3) Search Auctions" << endl << endl;

	cout << "4) Return" << endl << endl;
}

void seeMenuClient_SearchAuctions() {
	cout << "\t\t== Search Auctions ==\n" << endl;

	cout << "1) By Starting Date" << endl;
	cout << "2) By Ending Date" << endl;
	cout << "3) By Item(s)" << endl << endl;

	cout << "4) Return" << endl << endl;
}

void seeMenuClient_ManageAuctionBids() {
	cout << "\t\t== Client Menu ==\n" << endl;
	cout << "\t\t  Manage Bids \n" << endl;

	cout << "1) List Own Current Bids" << endl; //per auction
	cout << "2) List Own Historic of Bids" << endl;
	cout << "3) List All Auctions" << endl;
	cout << "4) Search Auctions" << endl << endl;

	cout << "5) Return" << endl << endl;
}

void seeMenuClient_PlaceAuctionBids() {
	cout << "\t\t== Client Menu ==\n" << endl;
	cout << "\t\t  Manage Bids \n" << endl;

	cout << "1) See Highest Bids" << endl;
	cout << "2) Place Bid" << endl << endl;

	cout << "3) Return" << endl << endl;
}

void seeMenuAdmin() {
	cout << "\t\t== Admin Menu ==\n" << endl;

	cout << "1) Manage Items" << endl;
	cout << "2) Rare Items" << endl;
	cout << "3) Manage Clients" << endl;
	cout << "4) Manage Transactions" << endl;
	cout << "5) Current Records" << endl;
	cout << "6) Historic" << endl;
	cout << "7) Manage Auctions" << endl;
	cout << "8) Manage Catalogue" << endl;
	cout << "9) Save" << endl;
	cout << "10) Load" << endl;
	cout << "11) Edit number of years necessary to enter unnavailable items" << endl << endl;

	cout << "12) Log Out" << endl << endl;
}

void seeMenuAdmin_ManageItems() {
	cout << "\t\t== Admin Menu ==\n" << endl;
	cout << "\t\t  Manage Items  \n" << endl;

	cout << "1) List Items" << endl;
	cout << "2) Search Items" << endl;
	cout << "3) Add Items" << endl;
	cout << "4) Increase an item's quantity" << endl;
	cout << "5) Edit Items" << endl;
	cout << "6) Delete Items" << endl;
	cout << "7) Manage Item Types" << endl << endl;

	cout << "8) Return" << endl << endl;
}

void seeMenuAdmin_ManageTypes() {
	cout << "\t\t== Manage Item Types ==\n" << endl;
	cout << "1) List of all types" << endl;

	cout << "2) Edit types" << endl;
	cout << "3) Delete types" << endl << endl;

	cout << "4) Return" << endl << endl;
}

void seeMenuAdmin_ManageClients() {
	cout << "\n\t\t== Administrator Menu ==\n" << endl;
	cout << "\t\t==== Manage Clients ====\n" << endl;

	cout << "1) List Clients" << endl;
	cout << "2) Search Clients" << endl;
	cout << "3) Edit Clients" << endl;
	cout << "4) Delete Clients" << endl << endl;

	cout << "5) Return" << endl << endl;
}

void seeMenuAdmin_ManageClients_Search() {

	cout << "\t\t== Search Clients\n" << endl;
	cout << "1) By Name" << endl;
	cout << "2) By ID" << endl;
	cout << "3) By Address" << endl;
	cout << "4) By Phone Number" << endl;
	cout << "5) By E-mail" << endl;
	cout << "6) By Password" << endl << endl;

	cout << "7) Return" << endl << endl;
}

void seeMenuAdmin_ManageAuctions() {
	cout << "\t\t== Administrator Menu ==\n" << endl;
	cout << "\t\t  Manage Auctions \n" << endl;

	cout << "1) List Auctions" << endl;
	cout << "2) Add Auctions" << endl;
	cout << "3) Search Auctions" << endl;
	cout << "4) Delete Auctions" << endl << endl;

	cout << "5) Return" << endl << endl;
}

void seeMenuAdmin_SearchAuctions() {
	cout << "\t\t== Administrator Menu ==\n" << endl;
	cout << "\t\t  Search Auctions  \n" << endl;

	cout << "1) By Starting Date" << endl;
	cout << "2) By Ending Date" << endl;
	cout << "3) By Item(s)" << endl;
	cout << "4) By Client" << endl << endl;

	cout << "5) Return" << endl << endl;
}

void seeMenuAdmin_ManageTransactions() {
	cout << "\t\t== Administrator Menu ==\n" << endl;
	cout << "\t\t  Transactions Menu \n" << endl;

	cout << "1) List Transactions" << endl;
	cout << "2) Buy/Trade" << endl;
	cout << "3) Add Transactions" << endl;
	cout << "4) Search Transactions" << endl;
	cout << "5) Delete Transactions" << endl << endl;

	cout << "6) Return" << endl << endl;
}

void seeMenuAdmin_CurrentRecords() {
	cout << "\t\t== Administrator Menu ==\n" << endl;
	cout << "\t\t  Current Records  \n" << endl;

	cout << "1) List Auction Records" << endl;
	cout << "2) List Transaction Records" << endl << endl;

	cout << "3) Return" << endl << endl;
}

void seeMenu_Buy_Trade_Items() {
	cout << "\n\t\t== Buy/Trade Items ==\n" << endl;

	cout << "1) Buy an item" << endl;
	cout << "2) Trade items" << endl << endl;
	cout << "3) Return" << endl << endl;
}

void seeMenuPreferences() {
	cout << "\n\t\t== Preferences ==\n" << endl;
	cout << "1) List all preferences" << endl;
	cout << "2) List your preferences" << endl;
	cout << "3) Add a new preference" << endl;
	cout << "4) Delete a preference" << endl << endl;

	cout << "5) Return" << endl << endl;
}

void seeMenu_RareItems() {
	cout << "\n\t\t== Rare Items ==\n" << endl;
	cout << "1) List all items sorted by rarity" << endl;
	cout << "2) Rarest Item" << endl;
	cout << "3) Top 10 rarest items" << endl;
	cout << "4) Buy/Trade" << endl;
	cout << "5) Search Rare Items" << endl;
	cout << "6) Show owned items sorted by rarity" << endl;
	cout << "7) Search owned items sorted by rarity" << endl << endl;

	cout << "8) Return" << endl << endl;
}

void seeMenuManageBST_Admin() {
	cout << "\t\t== Administrator Menu ==\n" << endl;
	cout << "\t\t  Items Catalogue  \n" << endl;

	cout << "1) List Items" << endl;
	cout << "2) Add Items" << endl;
	cout << "3) Search Items" << endl;
	cout << "4) Edit Items" << endl;
	cout << "5) Delete Items" << endl << endl;

	cout << "6) Return" << endl << endl;
}

void seeMenuManageBST_Client() {
	cout << "\t\t== Client Menu ==\n" << endl;
	cout << "\t\t  Items Catalogue  \n" << endl;

	cout << "1) List Items" << endl;
	cout << "2) Search Items" << endl;
	cout << "3) Sell Items to store" << endl << endl;

	cout << "4) Return" << endl << endl;
}
